package org.openscheduler.modules.trigger;

import java.util.Set;

import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import org.quartz.TimeOfDay;
import org.quartz.DateBuilder.IntervalUnit;

public class DailyTimeIntervalScheduleTriggerTemplate extends TriggerTemplate {

	private Integer timeInterval;
	private IntervalUnit unit;
	
	private TimeOfDay startTimeOfDay;
	
	private String endingDailyType;
	private TimeOfDay endTimeOfDay;
	private Integer count;
	
	private String daysOfWeekType;
	private Set<Integer> onDaysOfWeek;

	public String getDaysOfWeekType() {
		return daysOfWeekType;
	}

	public void setDaysOfWeekType(String daysOfWeekType) {
		this.daysOfWeekType = daysOfWeekType;
	}

	public String getEndingDailyType() {
		return endingDailyType;
	}

	public void setEndingDailyType(String endingDailyType) {
		this.endingDailyType = endingDailyType;
	}

	public TimeOfDay getStartTimeOfDay() {
		return startTimeOfDay;
	}

	public void setStartTimeOfDay(TimeOfDay startTimeOfDay) {
		this.startTimeOfDay = startTimeOfDay;
	}

	public TimeOfDay getEndTimeOfDay() {
		return endTimeOfDay;
	}

	public void setEndTimeOfDay(TimeOfDay endTimeOfDay) {
		this.endTimeOfDay = endTimeOfDay;
	}

	public Integer getTimeInterval() {
		return timeInterval;
	}

	public void setTimeInterval(Integer timeInterval) {
		this.timeInterval = timeInterval;
	}

	public IntervalUnit getUnit() {
		return unit;
	}

	public void setUnit(IntervalUnit unit) {
		this.unit = unit;
	}

	public Integer getCount() {
		return count;
	}

	public void setCount(Integer count) {
		this.count = count;
	}

	public Set<Integer> getOnDaysOfWeek() {
		return onDaysOfWeek;
	}

	public void setOnDaysOfWeek(Set<Integer> onDaysOfWeek) {
		this.onDaysOfWeek = onDaysOfWeek;
	}

	@Override
	public String toString() {
		return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
	}

}
